<?php
	include_once('Querys.php');
	include_once('vo/Proyecto.php');
	include_once('HistoriaService.php');
	include_once('SprintService.php');
	include_once('ParticipanteService.php');
	include_once('TareaService.php');
	include_once('EstadoService.php');
	
	class ProyectoService extends Querys{
		
		var $tabla = "proyectos";
		
		/*--------------------------------------------------------------------------
		Devuelve los proyectos del usuario que se le pasa como argumento
		--------------------------------------------------------------------------*/
		
		public function getByUsuario($id){
		
			$result = $this->consulta("SELECT proyectos.* FROM ".$this->tabla." JOIN rel_principal ON proyectos.id = rel_principal.id_proyecto JOIN usuarios ON rel_principal.id_usuario = usuarios.id WHERE id_usuario = $id ORDER BY proyectos.nombre");
			
			$proyectos = array();
			
			while($fila = $this->fetch($result)){
			
				$proyectoDTO = $this->armarDTO($fila);
				
				$proyectos[] = $proyectoDTO;
			}
			
			return $proyectos;
		}
		
		public function getRol($id_proyecto, $id_usuario){
		
			$result = $this->consulta("SELECT rel_principal.id_rol AS rol FROM rel_principal WHERE id_proyecto = $id_proyecto AND id_usuario = $id_usuario");
			
			$fila = $this->fetch($result);
			
			return $fila["rol"];
		}
		
		/*--------------------------------------------------------------------------
		Devuelve el proyecto con el id que se le pasa como argumento
		--------------------------------------------------------------------------*/
		
		public function getById($id){
		
			$result = $this->consulta("SELECT * FROM ".$this->tabla." WHERE id=$id");
			
			$proyecto = new ProyectoDTO();
			
			$fila = $this->fetch($result);
			
			$proyecto->id = $fila["id"];
			$proyecto->nombre = $fila["nombre"];
			$proyecto->descripcion = $fila["descripcion"];
			$proyecto->logo = $fila["logo"];
			$proyecto->fechaInic = $fila["fechaInic"];
			
			return $proyecto;
		
		}
		
		public function getNombre($id){
			$result = $this->consulta("SELECT nombre FROM ".$this->tabla." WHERE id = $id");
			
			$fila = $this->fetch($result);
			
			return $fila["nombre"];
		}
		
		public function getDTOById($id){
		
			$result = $this->consulta("SELECT proyectos.* FROM ".$this->tabla." JOIN rel_principal ON proyectos.id = rel_principal.id_proyecto JOIN usuarios ON rel_principal.id_usuario = usuarios.id WHERE proyectos.id = $id");
			
			$fila = $this->fetch($result);
			
			$proyectoDTO = $this->armarDTO($fila);
			
			return $proyectoDTO;
		}
		
		public function save(ProyectoDTO $proyecto, $id_usuario){
		
			$sql = "INSERT INTO ".$this->tabla." VALUES (null, '".$proyecto->nombre."', '".$proyecto->descripcion."', '".$proyecto->logo."', '".$proyecto->fechaInic."')";
			
			if($this->consulta($sql)){
				$proyecto->id = mysql_insert_id();
				$sql2 = "INSERT INTO rel_principal VALUES(null, $id_usuario, ".$proyecto->id.", 1, 1)";
				if($this->consulta($sql2)){
					mkdir("../view/uploads/archivos/".$proyecto->id, 0700);
					return $this->getDTOById($proyecto->id);
				}
			}
			
		}
		
		public function update(ProyectoDTO $proyecto){			
			$sql = "UPDATE ".$this->tabla." SET nombre = '".$proyecto->nombre."', descripcion = '".$proyecto->descripcion."', fechaInic = '".$proyecto->fechaInic."', logo = '".$proyecto->logo."' WHERE id = ".$proyecto->id;
			
			if($this->consulta($sql)){
				return $proyecto;
			}
			
		}
		
		private function armarDTO($fila){
		
			$proyectoDTO = new ProyectoDTO();
				
			$proyectoDTO->id = $fila["id"];
			$proyectoDTO->nombre = $fila["nombre"];
			$proyectoDTO->descripcion = $fila["descripcion"];
			$proyectoDTO->logo = $fila["logo"];
			$proyectoDTO->fechaInic = $fila["fechaInic"];
			
			return $proyectoDTO;
		}
		
	}
?>